__author__ = 'CrazyCode'

"""

    这里，我们创建了我们自己的异常类型，其实我们可以使用任何定义的异常/错误。
    这个新的异常类型是ShortInputException类，他有两个域——length是给定输入的长度，atleast则是程序期望的最小长度。

    在except从句中，我们提供了错误类和用来表示错误异常对象的变量，这与函数调用中的形参和实参概念类似，在这个特别的except从句中，我们使用异常对象的length和atleast域来为用户打印一个恰当的消息。

"""
class ShortInputException(Exception):
    """
        A user-defined exception class .
    """

    def __init__(self, length, atleast):
        Exception.__init__(self)
        self.length = length
        self.atleast = atleast


try:
    s = raw_input("Enter something -->")
    if len(s) < 3:
        raise ShortInputException(len(s), 3)
except EOFError:
    print("Why did you do an EOF on me?")
except ShortInputException as x:
    print("ShortInputException: The input was od length %d , was exception at least %d" % (x.length, x.atleast))
else:
    print("No exception was raised.")